#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
day 37 homework
"""

# 1.有一个文件，这个文件中有20000行数据，开启一个线程池，为每100行创建一个任务，打印这100行数据。
"""
from concurrent.futures import ThreadPoolExecutor

def func(f):
    for i in range(100):
        ret = f.readline()
        ret = ret.strip()
        print(ret)

if __name__ == '__main__':
    tp = ThreadPoolExecutor(1)
    f = open('1.txt', 'r', encoding='utf-8')
    for i in range(200):
        t = tp.submit(func, f)
    tp.shutdown()
    f.close()
"""
# 2.写一个socket 的udp代码，client端发送一个时间格式，server端按照client的格式返回当前时间
# 例如 client发送'%Y-%m-%d' ，server端返回'2019-5-20'
"""
import socket
import datetime

sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind(('127.0.0.1', 9000))
while True:
    msg, addr = sk.recvfrom(1024)
    t1 = msg.decode('utf-8')
    data = datetime.datetime.now().strftime(t1)
    sk.sendto(data.encode('utf-8'), addr)
"""

# 3.请总结进程、线程、协程的区别。和应用场景。
"""
进程：开销大 数据隔离 能利用多核 数据不安全 操作系统控制
线程：开销中 数据共享 cpython解释器下不能利用多核 数据不安全 操作系统控制
协程：开销小 数据共享 不能利用多核 数据安全 用户控制
"""